Incremental Reasoning for Multiple Inheritance
نویسندگان
چکیده
Object-orientation supports code reuse and incremental programming. Multiple inheritance increases the power of code reuse, but complicates the binding of method calls and thereby program analysis. Behavioral subtyping allows program analysis under an open world assumption; i.e., under the assumption that class hierarchies are extensible. However, method redefinition is severely restricted by behavioral subtyping, and multiple inheritance often leads to conflicting restrictions from independently designed superclasses. This report presents an approach to incremental reasoning for multiple inheritance under an open world assumption. The approach, based on a notion of lazy behavioral subtyping, is less restrictive than behavioral subtyping and fits well with multiple inheritance, as it incrementally imposes context-dependent behavioral constraints on new subclasses. We formalize the approach as a calculus, for which we show soundness.
منابع مشابه
Incremental reasoning with lazy behavioral subtyping for multiple inheritance
Object-orientation supports code reuse and incremental programming. Mul-tiple inheritance increases the possibilities for code reuse, but complicatesthe binding of method calls and thereby program analysis. Behavioral sub-typing allows program analysis under an open world assumption; i.e., un-der the assumption that class hierarchies are extensible. However, methodredefiniti...
متن کاملIncremental Knowledge Acquisition for Non-Monotonic Reasoning
The use of conventional non-monotonic reasoning tools in real-sized knowledge-based applications is hindered by the fact that the knowledge acquisition phase cannot be accomplished in the incremental way that is instead typical of knowledge base management systems based on monotonic logics. As a result, some researchers have departed from orthodox non-monotonic formalisms and proposed languages...
متن کاملPrime Numbers Considered Useful: Ontology Encoding for Efficient Subsumption Testing
Multiple inheritance hierarchies are frequently used for the classification of concepts into a taxonomy, to model software by organizing classes into an inheritance hierarchy, for querying object-oriented databases, for knowledge representation, policy enforcement, and subtyping of service interfaces for safe composition and substitution. All these areas apply hierarchies and share the same con...
متن کاملA Behavioral Subtyping, Specification Inheritance, and Modular Reasoning
Verification of a dynamically-dispatched method call, E .m(), seems to depend on E ’s dynamic type. To avoid case analysis and allow incremental development, object-oriented program verification uses supertype abstraction. That is, one reasons about E .m() using m’s specification for E ’s static type. Supertype abstraction is valid when each subtype in the program is a behavioral subtype. This ...
متن کاملEvidential Reasoning in Semantic Networks: A Formal Theory
This paper presents an evidential approach to knowledge representation and inference wherein the principle of maximum entropy is applied to deal with uncertainty and incompleteness. It focuses on a restricted representation language similar in expressive power to semantic network formalisms, and develops a formal theory of evidential inheritance within this language. The theory applies to a lim...
متن کامل